//
//  Profile.h
//  cliqset
//
//  Created by David Hinson on 2/25/09.
//  Copyright 2009 Cliqset, Inc.. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Contact.h"

// Basic Profile
@interface BasicProfile : NSObject
{	
@private	
	NSMutableString * _givenName;
	NSMutableString * _middleName;
	NSMutableString * _familyName;
	NSMutableString * _honorificPrefix;
	NSMutableString * _honorificSuffix;
	NSMutableString * _birthdate;
	NSMutableString * _politicalViews;
	NSMutableString * _religiousViews;
	NSMutableString * _gender;
	NSMutableString * _locality;
	NSMutableString * _region;
	NSMutableString * _country;
	NSMutableString * _postCode;
	NSMutableString * _maritalStatus;
	NSMutableString * _sexualOrientation;
	NSMutableString * _avatarURL;
	NSMutableData   * _avatarBlob;	
	NSMutableString * _aboutMe;
}

@property (retain, nonatomic) NSMutableString *givenName;
@property (retain, nonatomic) NSMutableString *middleName;
@property (retain, nonatomic) NSMutableString *familyName;
@property (retain, nonatomic) NSMutableString *honorificPrefix;
@property (retain, nonatomic) NSMutableString *honorificSuffix;
@property (retain, nonatomic) NSMutableString *birthdate;
@property (retain, nonatomic) NSMutableString *politicalViews;
@property (retain, nonatomic) NSMutableString *religiousViews;
@property (retain, nonatomic) NSMutableString *gender;
@property (retain, nonatomic) NSMutableString *locality;
@property (retain, nonatomic) NSMutableString *region;
@property (retain, nonatomic) NSMutableString *country;
@property (retain, nonatomic) NSMutableString *postCode;
@property (retain, nonatomic) NSMutableString *maritalStatus;
@property (retain, nonatomic) NSMutableString *sexualOrientation;
@property (retain, nonatomic) NSMutableString *avatarURL;
@property (retain, nonatomic) NSMutableData   *avatarBlob;
@property (retain, nonatomic) NSMutableString *aboutMe;

@end

// Work Experience
@interface WorkExperience : NSObject
{
	NSMutableString *_workExperienceIdentifier;
	NSMutableString *_employer;
	NSMutableString *_position;
	Address * _address;
	NSDate *_startDate;
	NSDate *_endDate;
}

@property (retain, nonatomic) NSMutableString *workExperienceIdentifier;
@property (retain, nonatomic) NSMutableString *employer;
@property (retain, nonatomic) NSMutableString *position;
@property (retain, nonatomic) Address *address;
@property (retain, nonatomic) NSDate *startDate;
@property (retain, nonatomic) NSDate *endDate;

@end


// Education Experience
@interface EducationExperience : NSObject
{
	NSMutableString *_educationExperienceIdentifier;
	NSMutableString *_school;
	NSMutableString *_schoolType;
	NSDate *_graduatingYear;
	NSMutableString *_concentration;
}

@property (retain, nonatomic) NSMutableString *educationExperienceIdentifier;
@property (retain, nonatomic) NSMutableString *school;
@property (retain, nonatomic) NSMutableString *schoolType;
@property (retain, nonatomic) NSDate *graduatingYear;
@property (retain, nonatomic) NSMutableString *concentration;

@end


// Experience Profile
@interface ExperienceProfile : NSObject
{
@private
	NSMutableArray *_workExperiences;		// Array of WorkExperience records
	NSMutableArray *_educationExperiences;	// Array of EducationExperience records
}

@property (retain, nonatomic) NSMutableArray *workExperiences;
@property (retain, nonatomic) NSMutableArray *educationExperiences;

@end

// User Profile
@interface Profile : NSObject {

@private	
	NSMutableString   * _userIdentifier;
	BasicProfile      * _basicProfile;
	Contact           * _contactProfile;
	ExperienceProfile * _experienceProfile;
}

@property (retain, nonatomic) NSMutableString *userIdentifier;
@property (retain, nonatomic) BasicProfile *basicProfile;
@property (retain, nonatomic) Contact *contactProfile;
@property (retain, nonatomic) ExperienceProfile *experienceProfile;

@end

